from lib.llm import invoke

from langchain.agents import tool

import re

import util.tool as utils

# input_msg = "今日告警总数100，告警设备50"
input_msg = utils.read_file("data/摘要.md")


# 提取HTML
def extract_html(str):
    pattern = r"```html(.*?)```"
    match = re.search(pattern, str, re.DOTALL)
    if match:
        return match.group(1).strip()
    return None


sys_temp = """
根据用户的输入内容，生成一个精美的网页

如果有使用cdn，统一使用
jsdelivr

如果css和js需要调用外部库，请从下面选
bootstrap
TailwindCSS
font-awesome 6.4.0
jquery-3.6.0
Chart.js 4.4.8
"""


desc = """\
    功能描述：生成网页
    返回值：HTMl
    工具标签：生成网页
"""


@tool(description=desc)
def webBuild(desc: str):
    res = None
    try:
        res = invoke(
            system_template=sys_temp,
            user_template=desc,
            input_data={},
        )
        print("生成结果", res)
    except Exception as e:
        print(e)
        return "网页生成失败"

    return "网页生成结果"


# res = invoke(
#     system_template="",
#     user_template="你好",
#     input_data={},
# )

# print("res", res)

res = invoke(
    system_template=sys_temp,
    user_template="""{input_msg}""",
    input_data={"input_msg": input_msg},
)
print("res", res)
html = extract_html(res)
print("html", html)

with open("data/限定网页生成库.html", "w", encoding="utf-8") as f:
    f.write(html)
